In general, the present invention relates to a modulation apparatus and a modulation method, a demodulation apparatus and a demodulation method as well as a program presenting medium. More particularly, the present invention relates to a preferable modulation apparatus and a preferable modulation method, a preferable demodulation apparatus and a preferable demodulation method as well as a preferable program presenting medium used in operations to record data onto a recording medium at a high recording density and playback data recorded in a recording medium at a high recording density.
When data is transmitted through a transmission line or recorded onto a recording medium such as a magnetic disc, an optical disc or a magneto-optic disc, the data is modulated into code matching the transmission line or the recording medium prior to the transmission or recording. As a technique of modulation, block encoding is known. In the block encoding, a data string is blocked into units each comprising mxc3x97i bits. Each of the units which is referred to hereafter as a data word is then converted into a code word comprising nxc3x97i bits in conformity with a proper coding rule. For i=1, this code word is a fixed length code. In the case of i having a plurality of values each selected from the range 1 to i max, a maximum of i, the resulting code word is a variable length code. In general, a code resulting from the block encoding is expressed as a variable length code (d, k; m, n; r).
Here, i is called a constraint length and r is i max, a maximum constraint length. d is the minimum number of 0s appearing between two consecutive 1s. d is referred to as a minimum run of 0s. On the other hand, k is the maximum number of 0s appearing between two consecutive 1s. k is referred to as a maximum run of 0s.
By the way, in an operation to record variable length code obtained from the block encoding described above onto a recording medium such as an optical disc or a magneto-optic disc, for example, on to a compact disc (CD) or a minidisc (MD), the variable length code undergoes an NRZI (Non Return to Zero Inverted) modulation wherein each xe2x80x9c1xe2x80x9d of the variable length code is interpreted as inversion while a xe2x80x9c0xe2x80x9d is interpreted as non-inversion The variable length code completing the NRZI modulation is then recorded. The variable length code completing the NRZI modulation is referred to as a recording wave train. In the case of a magneto-optic disc conforming to the early International Organization for Standardization (ISO) specifications prescribing a not so large recording density, a train of bits completing recording modulation are recorded as they are without undergoing the NRZI modulation.
Let notations T min and T max denote the minimum and maximum inversion periods of a recording wave train respectively. In this case, in order to record the recording wave train at a high recording density in the linear speed direction, a long minimum inversion period T min or a large minimum run d is preferred. In addition, from the clock generation point of view, it is desirable to have a short maximum inversion period T max or a small maximum run k. In order to satisfy these requirements, a variety of modulation techniques have been proposed.
To put it concretely, for an optical disc, a magnetic disc or a magneto-optic disc, there are proposed or actually used modulation techniques for generating a variable length code RLL (1-7) which is also expressed as (1, 7; m, n; r) and a variable length code RLL (2-7) also expressed as (2, 7 m, n ; r) as well as a fixed length code RLL (1-7) also expressed as (1, 7; m, n; 1) used in an ISO specification for magneto-optical disc. As for a disc apparatus currently under research and development such as an optical disc and a magneto-optic disc having a high recording density, an RLL code (Run length Limited Code) with a minimum run d of 1 is commonly used.
The following is an example of a conversion table of the variable length RLL (1 7) code.
The symbol x used in the conversion table has the value xe2x80x9c1xe2x80x9d for a next following channel bit of xe2x80x9c0xe2x80x9d or has the value xe2x80x9c00xe2x80x9d for a next following channel bit of xe2x80x9c1xe2x80x9d. The maximum constraint length r is 2.
Parameters of the variable length code RLL (1-7) are (1, 7; 2, 3; 2). The minimum inversion period T min which can be expressed by (d+1)T is thus equal to 2 (=1+1) T where T is a bit gap in the recording wave train. The minimum inversion period T min which can be expressed also by (m/n)xc3x972Tdata is thus equal to 1.33 (=2/3xc3x972)Tdata where Tdata is a bit gap in the data string. The maximum inversion period T max which can be expressed by (k+1)T is thus equal to (7+1)T=8T=8xc3x97(m/n)Tdata=8xc3x975.33Tdata. The detection window width Tw which can be expressed also by (m/n)Tdata is thus equal to 0.67(=2/3)Tdata.
By the way, in a train of channel bits completing the RLL (1-7), modulation shown in Table 1, a generation frequency corresponding to a period of 2T which is equal to the minimum inversion period T min is most observed to be followed by generation frequencies corresponding to periods of 3T and 4T. The fact that a lot of edge information is generated at short intervals such as 2T and 3T is advantageous to the generation of a clock signal in many cases.
As the recording line density is further increased, however, the minimum run this time adversely becomes a problem. That is, if minimum runs 2T are generated consecutively, the recording wave train is prone to distortion generated therein. This is because a 2T wave output is smaller than other wave outputs and, hence, easily affected by factors such as a defocus and a tangential tilt. In addition, at a high line density, recording of consecutive minimum marks (2T) is also easily affected by disturbances such as noise. Thus, an operation to play back the data will also be prone to errors. In this case, a pattern of errors in reproduction of the data is observed as shifts of the front and rear edges of a minimum mark in many cases. As a result, the length of the generated bit error increases.
As described above, when data is transmitted through a transmission line or recorded onto a recording medium, the data is modulated into code matching the transmission line or the recording medium prior to the transmission or recording. If the code resulting from the modulation contains a direct current component, a variety of error signals such as tracking errors generated in control of a servo of the disc drive become prone to variations or jitters are generated easily. For this reason, it is thus desirable to make as many efforts to prevent the modulated code from containing a direct current component as possible.
In order to prevent the modulated code from containing a direct current component, control of a DSV (Digital Sum Value) to prevent the modulated code from containing a direct current component has been proposed. The DSV is a total found by adding up the values of a train of bits (symbols of data), wherein the values +1 and xe2x88x921 are assigned to xe2x80x9c1xe2x80x9d and xe2x80x9c0xe2x80x9d in the train respectively, which results from NRZI modulation (that is, level encoding) of a train of channel bits. The DSV is an indicator of a direct current component contained in a train of codes. Decreasing the absolute value of the DSV through DSV control is equivalent to suppressing the magnitude of a direct current component contained in a train of codes.
DSV control is not applied to a modulation code generated in accordance with the variable length RLL (1-7) table shown as Table 1 given above. DSV control for such a case is accomplished by calculating a DSV of a train of encoded bits (a train of channel bits) after the modulation for a predetermined period of time and inserting a predetermined number of DSV control bits into the train of encoded bits (the train of channel bits).
At any rate, the DSV control bits are basically redundant bits. If the efficiency of the code conversion is to be taken into consideration, it is thus desirable to reduce the number of DSV control bits to a smallest possible value.
In addition, if DSV control bits are inserted, it is also desirable to make the minimum run d and the maximum run k unchanged. This is because a change in (d, k) will have an effect on recording I playback characteristics.
Problems To Be Solved by the Invention
As described above, in an operation to record RLL code at a high line density or an operation to play back RLL code recorded at a high line density, there is raised a problem that a pattern of consecutive minimum runs d will cause a long error to be generated easily.
In addition, in the case of RLL code such as the RLL (1-7) code, DSV control necessitates insertion of DSV control bits into an arbitrary part of a string of code words (a train of channel bits). Since the DSV control bits are basically redundant bits, however, it is desirable to reduce the number of inserted DSV control bits to a smallest possible value. In order to keep the minimum run and the maximum run at constant values, however, the number of DSV control bits is at least 2. It is thus desirable to reduce the number of DSV control bits to an even smaller value.
The present invention addresses the problems described above. It is an object of the present invention to allow DSV control to be executed for producing high efficiency control bits on RLL code of (d, k; m, n) where the minimum run d =1, that is RLL code of (1, 7; 2, 3) so that the number of consecutive minimum runs is reduced while the minimum run and the maximum run are being kept.
It is another object of the present invention to prevent propagation of a demodulation error from escalating by using a conversion table having a simplest possible configuration.
Means for Solving the Problems
A modulation apparatus according to claim 1 is characterized by having conversion means for converting input data into code in accordance with a conversion table wherein said conversion table enforces a conversion rule, according to which the remainder of division of a xe2x80x981xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981xe2x80x99 count of an element in the string of code words resulting from conversion of said data string by 2 and conversion codes of said conversion table comprise:
basic codes for d=1, k=7, m=2 and n=3 where d is a minimum run and k is a run length limit;
first substitution codes for limiting the number of consecutive appearances of said minimum run d; and
second substitution codes for keeping said run length limit k.
A modulation method according to claim 23 is characterized by including a conversion step of converting input data into code in accordance with a conversion table wherein said conversion table enforces a conversion rule, according to which the remainder of division of a xe2x80x981xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981 1 count of an element in the string of code words resulting from conversion of said data string by 2 and conversion codes of said conversion table comprise:
basic codes for d=1, k=7, m=2 and n=3 where d is a minimum run and k is a run length limit;
first substitution codes for limiting the number of consecutive appearances of said minimum run d; and
second substitution codes for keeping said run length limit k.
A program presenting medium according to claim 24 for presenting a program implementing processing including a conversion step of converting input data into code in accordance with a conversion table data in a modulation apparatus for converting data with a basic data length of m bits into variable length code (d, k; m, n; r) with a basic code length of n bits is characterized in that said conversion table enforces a conversion rule, according to which the remainder of division of a xe2x80x981xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981xe2x80x99 count of an element in the string of code words resulting from conversion of said data string by 2 and conversion codes of said conversion table comprise:
basic codes for d=1, k=7, m=2 and n=3 where d is a minimum run and k is a run length limit;
first substitution codes for limiting the number of consecutive appearances of said minimum run d; and
second substitution codes for keeping said run length limit k.
A demodulation apparatus according to claim 25 is characterized by having conversion means for converting input code into data in accordance with a conversion table wherein said conversion table enforces a conversion rule, according to which the remainder of division of a xe2x80x981xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981xe2x80x99 count of an element in the string of code words resulting from conversion of said data string by 2 and conversion codes of said conversion table comprise:
basic codes for d=1, k=7, m=2 and n=3 where d is a minimum run and k is a run length limit;
first substitution codes for limiting the number of consecutive appearances of said minimum run d; and
second substitution codes for keeping said run length limit k.
A demodulation method according to claim 28 is characterized by having a conversion step of converting input code into data in accordance with a conversion table wherein said conversion table enforces a conversion rule, according to which the remainder of division of a xe2x80x981xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981xe2x80x99 count of an element in the string of code words resulting from conversion of said data string by 2 and conversion codes of said conversion table comprise:
basic codes for d=1, k=7, m=2 and n=3 where d is a minimum run and k is a run length limit;
first substitution codes for limiting the number of consecutive appearances of said minimum run d; and
second substitution codes for keeping said run length limit k.
A program presenting medium according to claim 29 for presenting a program including a conversion step of converting input code into data in accordance with a conversion table in a demodulation apparatus for converting variable length code (d, k; m, n; r) with a basic code length of n bits into data with a basic data length of m bits is characterized in that said conversion table enforces a conversion rule, according to which the remainder of division of a xe2x80x981xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981xe2x80x99 count of an element in the string of code words resulting from conversion of said data string by 2 and conversion codes of said conversion table comprise:
basic codes for d=1, k=7, m=2 and n=3 where d is a minimum run and k is a run length limit;
first substitution codes for limiting the number of consecutive appearances of said minimum run d; and
second substitution codes for keeping said run length limit k.
According to the modulation apparatus claimed as claim 1, the modulation method claimed as claim 23, the program presenting medium claimed as claim 24, the demodulation apparatus claimed as claim 25, the demodulation method claimed as claim 28 and the program presenting medium claimed as claim 29, conversion processing is carried out on the basis of a conversion table enforcing a conversion rule, according to which the remainder of division of a 1xe2x80x99 count of an element in a data string by 2 having a value of 0 or 1 shall always be equal to the remainder of division of a xe2x80x981xe2x80x99 count of an element in the string of code words resulting from conversion of the data string by 2 and conversion codes of the conversion table comprising:
basic codes for d=1, k=7, m=2 and n=3;
first substitution codes for limiting the number of consecutive appearances of the minimum run d; and
second substitution codes for keeping the run length limit.